]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
breakManager: Update manager state after settings change
authorPhilip Withnall <pwithnall@gnome.org>
Wed, 2 Apr 2025 11:32:40 +0000 (12:32 +0100)
committerMarge Bot <marge-bot@gnome.org>
Fri, 11 Apr 2025 13:18:48 +0000 (13:18 +0000)
The change of settings may have affected when a break is due. In
particular, `this._breakLastEnd` is modified in `_updateSettings()`,
but `this._state` is not modified correspondingly to transition to/from
a `BREAK_DUE` state (if appropriate).

This could be the cause of the `breakDueAgo should be non-negative`
assertion failure from #8280.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>

js/misc/breakManager.js

index 4374af2d51b90a542b2eaed6f71444326dcd245b..06c88e06a6a0cc162563f94592a2af146b658c6d 100644 (file)
@@ -180,10 +180,15 @@ export const BreakManager = GObject.registerClass({
             }
         }
 
+        this.freeze_notify();
         this.notify('next-break-due-time');
 
         if (this._state === BreakState.DISABLED)
             this._startStateMachine();
+        else
+            this._updateState(currentTime);
+
+        this.thaw_notify();
 
         return true;
     }